Chapter 8. Using the Configuration File

This chapter describes each Internet Connection Server configuration directive. If you choose to configure the Internet Connection Server by editing the httpd.cnf configuration file, use this chapter as a reference.

The directive descriptions are grouped according to function; similar to the way the Configuration and Administration Forms are grouped. Within each group, the directives are in alphabetical order.

Each directive description includes:

Notes about directive descriptions:

  1. Each configuration directive follows the same general syntax
       DirectiveName value
    

  2. The value portion of some directives contains templates for requests, path names, or host names. Except where otherwise indicated, you can use the asterisk (*) character in templates. For the template to be matched, an asterisk can be replaced by any character string or single character.

  3. The examples and defaults in this chapter use the backslash (\) character when showing an OS/2 path name. In the configuration file, you can actually use either the backslash or forward slash (/) character when specifying a path name. Always use the forward slash (/) when specifying a URL or request template.


Basic

Use the directives described in this section to control your server's basic configuration settings.

DNS-Lookup - Specify whether you want to look up host names of clients

Use this directive to specify whether you want your server to look up the host name of requesting clients.

The value you use affects the following things about how your server works:

Example
   DNS-Lookup   On

Default
   DNS-Lookup   Off

HostName - Specify the fully qualified host name for the server

Use this directive to specify the fully qualified host name of the machine on which the server is running. If you want to use an alias, you can specify any fully qualified host name that is defined for your machine in your domain name server. The name you specify on this directive is the name that is returned to clients.

Example
   HostName   www.ibm.com

Default
The name you specified for Host name during installation. The installation default is the default host name defined in your domain name server. If you remove this directive, the default host name defined in your domain name server is used.

Port - Specify the port on which you want the server to listen for requests

Use this directive to specify the port number the server should listen to for requests. The standard port number for HTTP is 80. Other port numbers less than 1024 are reserved for other TCP/IP applications and should not be used. Common ports used for proxy Web servers are 8080 and 8008.

When a port other than 80 is used, clients are required to include a specific port number on requests to the server. The port number is preceded by a colon and placed after the host name on the URL. For example, the URL,

   http://www.turfco.com:8008/
requests the default welcome page from a host named www.turfco.com that is listening on port 8008.

You can use the -p option on the httpd command to override this setting when starting the server.

If you change this directive, you must stop your server and then start it again for the change to take effect. The server will not pick up the change if you only restart it.

Example
   Port 8080

Default
The name you specified for Port during installation. The installation default is 80.

ServerRoot - Specify the directory where the server program is installed

Use this directive to specify the directory where the server program is installed.

Example
   ServerRoot   d:\webserve\BIN

Default
The directory name you specified for Executables directory during installation. The installation default is:
   ServerRoot  C:\WWW\BIN

Directories and Welcome Page

Use the directives described in this section to control how your server responds to requests containing a directory name. You can have the server search the directory for a welcome file to return, or you can have the server generate a directory listing.

By default, the server first looks for a welcome file. If no welcome file is present, the server displays a directory listing. Configuration settings control how directory listings appear and the icons that the listings use.

The server provides a set of default icons to use for directory listings. You can replace these icons with others using some of the directives described in this section.

AddBlankIcon - Specify the icon URL used to align the heading of directory listings

Use this directive to specify an icon to use for aligning the heading on directory listings. This can either be a blank icon or another icon you want to appear on the headings of your directory listings. For proper alignment, the icon you use must be the same size as the other icons you are using on your directory listings. The format of the directive is:

   AddBlankIcon   icon-URL   alternate-text

icon-URL

The last part of the URL for the icon. The server adds this value to the value of the IconPath directive to form the complete URL request. If the request is for a local file, the server translates the request through the mapping directives. For the icon to be retrieved, the mapping directives must allow the request to be passed.

If you are using the server as a proxy, the complete request must be a fully qualified URL pointing to your server. You must map the URL to a local file and make sure that the mapping directives allow the URL to be passed.

alternate-text

The alternate text to use for the icon if the requesting browser is not displaying graphics.

Example
   AddBlankIcon logo.gif  logo

Default
   AddBlankIcon   blank.gif

The default does not specify alternative text since the icon is blank.

AddDirIcon - Specify the icon URL for directories on directory listings

Use this directive to specify an icon for representing a directory on a directory listing. The format of the directive is:

   AddDirIcon   icon-URL   alternate-text

icon-URL

The last part of the URL for the icon. The server adds this value to the value of the IconPath directive to form the complete URL request. If the request is for a local file, the server translates the request through the mapping directives. For the icon to be retrieved, the mapping directives must allow the request to be passed.

If you are using the server as a proxy, the complete request must be a fully qualified URL pointing to your server. You must map the URL to a local file and make sure that the mapping directives allow the URL to be passed.

alternate-text

The alternate text to use for the icon if the requesting browser is not displaying graphics.

Example
   AddDirIcon  direct.gif  DIR

Default
   AddDirIcon  dir.gif    DIR

AddIcon - Bind an icon to a MIME content-type or encoding-type

Use this directive to specify icons for representing files with a specific MIME content-type or encoding-type. The server uses the icons on directory listings. The format of the directive is:

   AddIcon   icon-URL   alternate-text   type-template

icon-URL

The last part of the URL for the icon. The server adds this value to the value of the IconPath directive to form the complete URL request. If the request is for a local file, the server translates the request through the mapping directives. For the icon to be retrieved, the mapping directives must allow the request to be passed.

If you are using the server as a proxy, the complete request must be a fully qualified URL pointing to your server. You must map the URL to a local file and make sure that the mapping directives allow the URL to be passed.

alternate-text

The alternate text to use for the icon if the requesting browser is not displaying graphics.

type-template

Either a MIME content-type or encoding-type template. Content-type templates always contain a slash. Encoding-type templates never have a slash.

Example
   AddIcon   movie.gif    video   video/*

Defaults
   AddIcon    binary.gif        BIN  binary
   AddIcon    text.gif          TXT  text/*
   AddIcon    image.gif         IMG  image/*
   AddIcon    movie.gif         MOV  video/*
   AddIcon    sound.gif         AU   audio/*
   AddIcon    tar.gif           TAR  multipart/*tar
   AddIcon    compress.gif      CMP  x-compress x-gzip

AddParentIcon - Specify the icon URL for a parent directory on directory listings

Use this directive to specify an icon for representing a parent directory on a directory listing. The format of the directive is:

   AddParentIcon   icon-URL   alternate-text

icon-URL

The last part of the URL for the icon. The server adds this value to the value of the IconPath directive to form the complete URL request. If the request is for a local file, the server translates the request through the mapping directives. For the icon to be retrieved, the mapping directives must allow the request to be passed.

If you are using the server as a proxy, the complete request must be a fully qualified URL pointing to your server. You must map the URL to a local file and make sure that the mapping directives allow the URL to be passed.

alternate-text

The alternate text to use for the icon if the requesting browser is not displaying graphics.

Example
   AddParentIcon  parent.gif  UP

Default
   AddParentIcon  back.gif    UP

AddUnknownIcon - Specify the icon URL for unknown file types on directory listings

Use this directive to specify an icon for representing files with an unknown file type on a directory listing. The format of the directive is:

   AddUnknownIcon   icon-URL   alternate-text

icon-URL

The last part of the URL for the icon. The server adds this value to the value of the IconPath directive to form the complete URL request. If the request is for a local file, the server translates the request through the mapping directives. For the icon to be retrieved, the mapping directives must allow the request to be passed.

If you are using the server as a proxy, the complete request must be a fully qualified URL pointing to your server. You must map the URL to a local file and make sure that the mapping directives allow the URL to be passed.

alternate-text

The alternate text to use for the icon if the requesting browser is not displaying graphics.

Example
   AddUnknownIcon saywhat.gif  huh

Default
    AddUnknownIcon unknown.gif   ???

AlwaysWelcome - Specify if a welcome file is returned for all directory requests

Use this directive to specify if you want your server to always handle directory requests by first searching the directory for a welcome file.

The default value is On, which means that the server always searches the directory for a welcome file. The Welcome directive specifies the names of the files that the server recognizes as welcome files.

If you change the value to Off, the server first checks the last character of directory requests for the slash (/) character. If a directory request ends with a slash, the server searches the directory for a welcome file. If a directory request does not end with a slash, the server attempts to return a directory listing.

If the server does not find a welcome file, or AlwaysWelcome is set to Off and the directory request does not end in a slash, the DirAccess directive controls whether or not the server responds to the request with a directory listing.

Note: Setting AlwaysWelcome to Off does not affect requests that contain only your server name without a directory name. The server will always handle these requests by looking in your document root directory for a welcome file. The server cannot generate a directory listing for the document root directory.

Example
   AlwaysWelcome Off

Default
   AlwaysWelcome On

DirAccess - Control directory listings

Use this directive to specify whether you want your server to return directory listings when requested. The values on the Welcome and AlwaysWelcome directives determine when a request is interpreted as a request for a directory listing.

The default value is On, which means that the server can return directory listings.

If you change the value to Off, the server will not return directory listings.

If you change the value to Selective, the server will return directory listings for any directory that contains a file named .www_browsable. The contents of the .www_browsable file are not important, the server only checks for its existence.

Examples
   DirAccess Off
   DirAccess Selective

Default
   DirAccess On

DirReadme - Control directory README files

Use this directive to specify if and where you want your server to display directory listing README files.

The default value is Top, which means that when the server returns a directory listing, it searches the directory for a file named README. If README is found, the server puts the contents of the file at the top of the directory listing.

If you change the value to Bottom, the server searches for a README file, but puts the contents at the bottom of the directory listing.

If you change the value to Off, the server does not search the directory for a README file.

Examples
   DirReadme Bottom
   DirReadme off

Default
   DirReadme Top

DirShowBrackets - Use brackets around alternative text on directory listings

Use this directive to specify whether you want the server to put brackets around alternative text on directory listings. The directives that specify directory listing icons also contain alternate text. The alternate text is used in place of an icon if the requesting browser is not displaying graphics.

Example
   DirShowBrackets Off

Default
   DirShowBrackets On

DirShowBytes - Show byte count for small files on directory listings

Use this directive to specify whether directory listings should include the exact byte count for files smaller than 1 KB.

A value of Off means the directory listing shows a size of 1 KB for all files that are 1 KB or smaller.

Example
   DirShowBytes On

Default
   DirShowBytes Off

DirShowCase - Use case when sorting files on directory listings

Use this directive to specify whether directory listings should distinguish between uppercase and lowercase letters when sorting file names.

A value of On means uppercase letters are placed before lowercase letters.

Example
   DirShowCase Off

Default
   DirShowCase On

DirShowDate - Show date last modified on directory listings

Use this directive to specify whether directory listings should include the last modification date for each file.

Example
   DirShowDate Off

Default
   DirShowDate On

DirShowDescription - Show descriptions for files on directory listings

Use this directive to specify whether directory listings should include descriptions for HTML files. The descriptions are taken from the files' HTML <title> tags.

Example
   DirShowDescription Off

Default
   DirShowDescription On

DirShowHidden - Show hidden files on directory listings

Use this directive to specify whether directory listings should include any hidden files on the directory.

The server considers the following to be hidden files:

Example
   DirShowHidden Off

Default
   DirShowHidden On

DirShowIcons - Show icons in directory listings

Use this directive to specify whether you want your server to include icons in directory listings. Icons can be used to provide a graphic representation of the content type of the files in the listing. The icons themselves are defined by the AddBlankIcon, AddDirIcon, AddIcon, AddParentIcon, and AddUnknownIcon directives.

Example
   DirShowIcons Off

Default
   DirShowIcons On

DirShowMaxDescrLength - Set the maximum description length on directory listings

Use this directive to set the maximum number of characters to show in the description field on directory listings.

Example
   DirShowMaxDescrLength 30

Default
   DirShowMaxDescrLength 25

DirShowMaxLength - Set the maximum length for file names on directory listings

Use this directive to set the maximum number of characters that will be used for file names on directory listings.

Example
   DirShowMaxLength 30

Default
   DirShowMaxLength 25

DirShowMinLength - Set the minimum length for file names on directory listings

Use this directive to set the minimum number of characters that will always be reserved for file names on directory listings. If the longest file name in the directory is longer than this number, the field will be extended up to the amount specified on the DirShowMaxLength directive.

Example
   DirShowMinLength 10

Default
   DirShowMinLength 15

DirShowSize - Show file size on directory listings

Use this directive to specify whether directory listings should include the size of each file.

Example
   DirShowSize Off

Default
   DirShowSize On

IconPath - Specify the path for the directory listing internal icons

Use this directive to specify URL information to be added at the beginning of each icon-URL specified on a AddBlankIcon, AddDirIcon, AddParentIcon, AddUnknownIcon, or AddIcon directive. The value you specify on this directive is added to the icon-URL value on each of the other directives to form the full request for the icon. The full request can be mapped to a file on your server or it can be a request to another server.

Attention: This directive must be before any of the other icon directives (AddBlankIcon, AddDirIcon, AddParentIcon, AddUnknownIcon, and AddIcon).

Example
   IconPath http://icon.server.com:8080/httpd-internal-icons/

In the above example, each request for a directory list icon generates a request to a server named icon.server.com.

Default
   IconPath  /icons/

With the default settings, each request for a directory list icon generates a request that begins with /icons/. The server uses its mapping rules to map the request to a local file.

Welcome - Specify names of welcome files

Use this directive to specify the name of a welcome file the server should look for to respond to requests that do not contain a specific file name. You can build a list of welcome files by putting multiple occurrences of this directive in the configuration file.

The AlwaysWelcome directive controls whether the server always handles directory requests by searching for a welcome file. By default, when the server receives a request specifying a directory, it searches the directory for a file matching a name specified on a Welcome directive. If a match is found, the file is returned to the requester. If more than one match is found, the order of the Welcome directives within the configuration file determines which file is returned.

If the server does not find a welcome file in the directory, the DirAccess directive controls whether or not the server responds to the request with a directory listing.

Example
   Welcome letsgo.html

Defaults
   Welcome Welcome.html
   Welcome welcome.html
   Welcome index.html
   Welcome Frntpage.html

The above default values are shown in the order used by the default configuration.


Logs

Use the directives described in this section to control your server's logs. You can have the server log incoming requests, requests for cached files (if the server is a caching proxy), and internal server errors. You can specify the path and file where you want these logs to be kept, how requests should be logged, and which requests you do not want to log.

You most likely will want to use the common log format. This is the default format and it is the same format used by most other types of Web servers. You can use several generic statistic programs to analyze the log contents when they are kept in the common format.

AccessLog - Name the path for the access log file

Use this directive to specify the path and file name where you want the server to log access statistics. By default, the server writes an entry to this log each time a client sends the server a request. You can use the NoLog directive if you do not want to log requests from certain clients.

The server starts a new log file the first time you start it on a given day. When creating the file, the server uses the file name you specify and appends a date extension. The date extension is in the format Mmmddyy, where Mmm is the first three letters of the month; dd is the day of the month; and yy is the last two digits of the year.

Example
   AccessLog  d:\server\logs\accesslog

Default
   AccessLog  d:\path\httpd-log
d:\path\ is the value you entered for Logs directory at installation. The installation default is c:\WWW\LOGS

CacheAccessLog - Specify the path for the cache access log files

If you are running your server as a caching proxy, you can log requests to the cache separately from other access requests. Use this directive to specify the path and file name where you want the server to put cache access log files.

The server starts a new log file the first time you start it on a given day. When creating the file, the server uses the file name you specify and appends a date extension. The date extension is in the format Mmmddyy, where Mmm is the first three letters of the month; dd is the day of the month; and yy is the last two digits of the year.

Example
   CacheAccessLog  d:\server\logs\cachelog

Default
None. The server does not log cache access requests unless you include this directive in your configuration file.

ErrorLog - Name the file where you want to log internal server errors

Use this directive to specify the path and file name where you want the server to log internal errors.

The server starts a new log file the first time you start it on a given day. When creating the file, the server uses the file name you specify and appends a date extension. The date extension is in the format Mmmddyy, where Mmm is the first three letters of the month; dd is the day of the month; and yy is the last two digits of the year.

Example
   ErrorLog d:\server\logs\errorlog

Default
   ErrorLog  d:\path\httpd-error
d:\path\ is the value you entered for Logs directory at installation. The installation default is c:\WWW\LOGS

LogFormat - Specify common or old log file format

Use this directive to specify whether you want your server to write log files in the common format or old format. The common format is the one used by most Web servers. The old format was used with early versions of Web servers from CERN. You most likely will want to use the common format, which is the default.

Example
   LogFormat Old

Default
   LogFormat Common

LogTime - Specify GMT or local time stamps in log files

Use this directive to specify whether your logs should record entries using local time or Greenwich Mean Time (GMT).

Example
   LogTime GMT

Default
   LogTime LocalTime

NoLog - Suppress log entries for specific hosts or domains matching a template

Use this directive to specify that you do not want to log access requests made from specific hosts or domains that match a given template. For example, you may not want to log access requests from local hosts.

You can have multiple occurrences of this directive in your configuration file. You can also put multiple templates on the same directive if you separate them by one or more spaces. You can use host names or IP number addresses on the templates.

Note: In order to use host name templates, you must set the DNS-Lookup directive to On. If the DNS-Lookup directive is set to Off (the default), you can use IP address templates only. See "DNS-Lookup - Specify whether you want to look up host names of clients".

Example
   NoLog 128.141.*.*  *.edu  localhost.*

Default
None

Timeouts

Use the directives described in this section to control the amount of time the server spends processing requests.

InputTimeout - Specify input timeout setting

Use this directive to set the time allowed for a client to send a request after making a connection to the server. A client first connects to the server and then sends a request. If the client does not send a request within the amount of time on this directive, the server drops the connection. Specify the time value in any combination of hours, minutes (or mins), and seconds (or secs).

Example
   InputTimeout 3 mins 30 secs

Default
   InputTimeout 2 minutes

OutputTimeout - Specify output timeout setting

Use this directive to set the maximum time allowed for your server to send output to a client. The time limit applies to requests for local files and requests for which the server is acting as a proxy. The time limit does not a apply for requests that start a local CGI program.

If the server does not send the complete response within the amount of time on this directive, the server drops the connection. Specify the time value in any combination of hours, minutes (or mins), and seconds (or secs).

Example
   OutputTimeout 1 hour

Default
   OutputTimeout 20 minutes

ScriptTimeout - Specify script timeout setting

Use this directive to set the time allowed for a program started by the server to finish. The server stops a program if it runs longer than the limit. Specify the time value in any combination of hours, minutes (or mins), and seconds (or secs).

Example
   ScriptTimeout 15 mins

Default
   ScriptTimeout 5 minutes

Methods

Use the directives described in this section to control which HTTP methods are enabled for your server.

Client requests to the server include a method field that indicates the action the server is to perform on the specified object. The request identifies the object with a Uniform Resource Locator (URL).

Following is a list of methods that the Internet Connection Server supports and a description of how the server would respond to a client request containing the method. The description assumes the method is enabled.

Disable - Disable HTTP methods

Use this directive to specify which HTTP methods you do not want your server to accept.

In the default configuration file, the GET, HEAD, and POST methods are enabled and all other supported HTTP methods are disabled. To disable a method that is currently enabled, change the Enable directive for the method to a Disable directive.

Note: The Configuration and Administration Forms use the POST method to make updates to your server configuration. If you disable the POST method you will not be able to use the Configuration and Administration Forms.

Example
   Disable HEAD

Defaults
   Disable   CHECKIN
   Disable   PUT
   Disable   CHECKOUT
   Disable   DELETE

Enable - Enable HTTP methods

Use this directive to specify which HTTP methods you want your server to accept.

You can enable as many of the HTTP methods as you need. For each method you want the server to accept, enter a separate Enable directive followed by the name of the method.

Example
   Enable DELETE

Defaults
   Enable GET
   Enable HEAD
   Enable POST

Accessory Scripts

Use the directives described in this section to specify default script programs to process SEARCH, POST, PUT, or DELETE requests. Requests are first matched against the configuration file's mapping rules. If the request does not explicitly map to a CGI script program on an EXEC directive, then the request is processed by the appropriate default accessory script.

DELETE-Script - Specify the location and name of accessory script for DELETE requests

Use this directive to specify the full path and file name of a program to handle DELETE requests that are not explicitly mapped to a CGI script.

You must enable the HTTP DELETE method for the server to be able to process delete requests (see "Methods"). Because the DELETE method lets clients delete information from your server, you must use protection rules to define who you want to be able to use this method (see Chapter 7. "Protecting Your Server").

Example
   DELETE-Script   d:\server\cgibin\delete.exe

Default
None. The server does not provide a delete script.

POST-Script - Specify the location and name of accessory script for POST requests

Use this directive to specify the full path and file name of a program to handle POST requests that are not explicitly mapped to a CGI script.

You must enable the HTTP POST method for the server to be able to process post requests (see "Methods"). Also, because the POST method lets clients replace information on your server, you must use protection rules to define who you want to be able to use this method (see Chapter 7. "Protecting Your Server").

Example
   POST-Script   d:\server\cgibin\post.exe

Default
None. The server does not provide a post script.

PUT-Script - Specify the location and name of accessory script for PUT requests

Use this directive to specify the full path and file name of a program to handle PUT requests that are not explicitly mapped to a CGI script.

You must enable the HTTP PUT method for the server to be able to process put requests (see "Methods"). Also, because the PUT method lets clients replace information on your server, you must use protection rules to define who you want to be able to use this method (see Chapter 7. "Protecting Your Server").

Example
   PUT-Script   d:\server\cgibin\put.exe

Default
None. The server does not provide a put script.

Search - Specify location of search script

Use this directive to specify the full path name of the program to handle search requests that are not explicitly mapped to a CGI script.

The server passes the search program information in the following CGI environment variables:

Example
   Search   d:\server\cgibin\search.exe

Default
None. The server does not provide a search script.

Meta-Information

Use the directives described in this section to control where your server looks for meta-information files.

You can use a separate set of files to store meta-information about your server's documents. The server can include the meta-information with its HTTP responses. Meta-information describes the file containing a document, not the contents of the document. For example, meta-information for a file might give the date the file was created and the date it was last modified.

HTTP recognizes Multipurpose Internet Mail Extension (MIME) headers. Information that MIME header fields can identify include the file type, subtype, encoding, and content length.

Each line of a meta-information file contains a header field, followed by a colon, and the value of the field. For example:

   Last-Modified: Wednesday, 05-Apr-96 20:51:35 GMT
   Expires-by: Friday, 30-Jun-96 24:00:00 GMT
   MIME-Version: 1.0
   Content-Type: text/html
   Content-Length: 4577

MetaDir - Specify name of subdirectory for meta-information files

Use this directive to specify the name you want to use for subdirectories that contain meta-information files. You can only have one instance of this directive, which means all your meta-information subdirectories have the same name.

Any directory from which your server retrieves files can have a subdirectory with the name specified on this directive. The files on the meta-information subdirectory contain meta-information about the files being retrieved. The meta-information files have the same file name and extension as the file they describe, plus an added extension. The name of the added extension is specified on the MetaSuffix directive.

For example, you might have the following two directives in your configuration file:

   MetaDir     look_here
   MetaSuffix  .file_desc
If your server goes to retrieve this file:
   d:/html/realcool/coolindex.html
it looks for meta information to include with the response in this file:
   d:/html/realcool/look_here/coolindex.html.file_desc

Example
   MetaDir  mimeinfo

Default
   MetaDir  .web

Note: The dot character (.) at the beginning of the default value is used as part of the subdirectory name.

MetaSuffix - Specify the extension for meta-information files

Use this directive to specify the extension you want to use for meta-information files. You can only have one instance of this directive, which means all meta-information files end with the same extension. You must include the period character (.) as part of the value.

Any file your server retrieves can have a meta-information file associated with it. A meta-information file has the same file name and extension as the file it describes, plus the additional extension specified on the MetaSuffix directive. A meta-information file must be located on a subdirectory of the directory that contains the file being described. The name of the subdirectory must be the name specified on the MetaDir directive.

See the description of the MetaDir directive to see an example of how MetaDir and MetaSuffix work together.

Example
   MetaSuffix   .head

Default
   MetaSuffix   .meta

Resource Mapping

Use the directives described in this section to control how your server interprets particular file extensions, which requests your server accepts, and where the server looks for resources.

The server binds files to a content type, content encoding, or content language based on the file extension. The server provides defaults for most commonly used extensions. Use the extension definition directives only if you need to add new definitions or change the default definitions.

Use the mapping directives (Exec, Fail, Map, Pass, and Redirect) to control which requests your server accepts and to map URL requests to your actual files.

You can use the mapping directives to create a virtual hierarchy of Web resources. You can then change the physical location of files or directories without affecting the virtual layout. Even if your server sends documents from different file systems, it can present a virtual layout.

The server applies the mapping directives in the order they appear in the configuration file until a request has been accepted, rejected, or there are no more directives that apply to the request.

AddEncoding - Specify the MIME content encoding of files with particular extensions

This directive is seldom used. It is used to bind files with a particular extension to a MIME-encoding type. The format of the directive is:

   AddEncoding .extension encoding

.extension

The file extension pattern.

encoding

The MIME-encoding type you want to bind to files that match the corresponding extension pattern.

Example
   AddEncoding .qp   quoted_printable

Defaults
AddEncoding  .Z     x-compress    1.0
AddEncoding  .gz    x-gzip        1.0

AddLanguage - Specify the language of files with particular extensions

Use this directive to bind files with a particular extension to a language. The format of the directive is:

   AddLanguage .extension  language

.extension

The file extension pattern.

language

The language you want to bind to files that match the corresponding extension pattern.

Examples
   AddLanguage .en  en

This example defines files with a .en extension as being in American English.

   AddLanguage .uk  en_UK

This example defines files with a .uk extension as being in United Kingdom English.

Default
None

AddType - Specify the data type of files with particular extensions

Use this directive to bind files with a particular extension to a MIME type/subtype. You can have multiple occurrences of this directive in your configuration file. The server provides defaults for most commonly used extensions. The format of the directive is:

   AddType .extension type/subtype encoding [quality[ character-set]]

.extension

The file extension pattern. You can use the wildcard character (*) only on the following two special extension patterns:

*.*
Matches all file names that contain a dot character (.) and have not been matched by other rules

*
Matches all file names that do not contain a dot character (.) and have not been matched by other rules

type/subtype

The MIME type subtype you want to bind to files that match the corresponding extension pattern.

encoding

The MIME content-encoding format to which the data has been converted. In most cases, the appropriate encoding is 7-bit, 8-bit, or binary, and is determined as follows:

7-bit
Data is all represented as short (less than 1000 characters) lines of US-ASCII data. Source code or plain text files usually fall into this category. Exceptions would be files containing line-drawing characters or accented characters.

8-bit
Data is represented as short lines, but may contain characters with the high bit set (for example, line-drawing characters or accented characters). PostScript files and text files from European sites usually fall into this category.

binary
This encoding can be used for all data types. Data may contain not only non-ASCII characters, but also long (greater than 1000 characters) lines. Almost every file of type image/*, audio/*, and video/* falls into this category, as do binary data files of type application/*.

Any other value of encoding receives the same treatment as binary and is passed in MIME headers as a content encoding MIME header. EBCDIC, 7-bit, and 8-bit is not sent in MIME headers.

quality

An optional indicator of relative value (on a scale of 0.0 to 1.0) for the content type. The quality value is used if multiple representations of a file are matched by a request. The server selects the file that is associated with the highest quality value. For example, if the file internet.ps is requested, and the server has the following AddType directives:
   AddType   .ps application/postscript   8bit   1.0
   AddType   *.* application/binary       binary 0.3

the server would use the application/postscript line because its quality number is higher.

character-set

An optional indicator of the character set you want to associate with text documents. For the documents that you assign a character set to, the server tells client browsers what character set to use when displaying the document. If you want to use the character-set field, you must also include a value for the quality field.

Example
   AddType .bin  application/octet-stream binary  0.8

Defaults
   AddType .mime www/mime                 binary  1.0
   AddType .bin  application/octet-stream binary  1.0
   AddType .oda  application/oda          binary  1.0
   AddType .pdf  application/pdf          binary  1.0
   AddType .ai   application/postscript   8bit    0.5
   AddType .PS   application/postscript   8bit    0.8
   AddType .eps  application/postscript   8bit    0.8
   AddType .ps   application/postscript   8bit    0.8
   AddType .rtf  application/x-rtf        7bit    1.0
   AddType .csh  application/x-csh        7bit    0.5
   AddType .dvi  application/x-dvi        binary  1.0
   AddType .hdf  application/x-hdf        binary  1.0
   AddType .latex application/x-latex     8bit    1.0
   AddType .nc   application/x-netcdf     binary  1.0
   AddType .cdf  application/x-netcdf     binary  1.0
   AddType .sh   application/x-sh         7bit    0.5
   AddType .tcl  application/x-tcl        7bit    0.5
   AddType .tex  application/x-tex        8bit    1.0
   AddType .texi application/x-texinfo    7bit    1.0
   AddType .texinfo  application/x-texinfo 7bit   1.0
   AddType .t    application/x-troff      7bit    0.5
   AddType .roff application/x-troff      7bit    0.5
   AddType .tr   application/x-troff      7bit    0.5
   AddType .man  application/x-troff-man  7bit    0.5
   AddType .me   application/x-troff-me   7bit    0.5
   AddType .ms   application/x-troff-ms   7bit    0.5
   AddType .src  application/x-wais-source 7bit   1.0
   AddType .bcpio application/x-bcpio     binary  1.0
   AddType .cpio application/x-cpio       binary  1.0
   AddType .gtar application/x-gtar       binary  1.0
   AddType .shar application/x-shar       8bit    1.0
   AddType .sv4cpio application/x-sv4cpio binary  1.0
   AddType .sv4crc application/x-sv4crc   binary  1.0

The following are neutral CAE formats:

   AddType .igs application/iges          binary  1.0
   AddType .iges application/iges         binary  1.0
   AddType .IGS application/iges          binary  1.0
   AddType .IGES application/iges         binary  1.0
   AddType .stp application/STEP          8bit    1.0
   AddType .STP application/STEP          8bit    1.0
   AddType .step application/STEP         8bit    1.0
   AddType .STEP application/STEP         8bit    1.0
   AddType .dxf application/dxf           binary  1.0
   AddType .DXF application/dxf           binary  1.0
   AddType .vda application/vda           binary  1.0
   AddType .VDA application/vda           binary  1.0
   AddType .set application/set           8bit    1.0
   AddType .SET application/set           8bit    1.0
   AddType .stl application/SLA           8bit    1.0
   AddType .STL application/SLA           8bit    1.0

The following are vendor-specific CAD-formats commonly used by CERN and in HEP institutes:

   AddType .dwg application/acad          binary  1.0
   AddType .DWG application/acad          binary  1.0
   AddType .SOL application/solids        binary  1.0
   AddType .DRW application/drafting      binary  1.0
   AddType .prt application/pro_eng       binary  1.0
   AddType .PRT application/pro_eng       binary  1.0
   AddType .unv application/i-deas        binary  1.0
   AddType .UNV application/i-deas        binary  1.0
   AddType .CCAD application/clariscad    binary  1.0
   AddType .snd  audio/basic              binary  1.0
   AddType .au   audio/basic              binary  1.0
   AddType .aiff audio/x-aiff             binary  1.0
   AddType .aifc audio/x-aiff             binary  1.0
   AddType .aif  audio/x-aiff             binary  1.0
   AddType .wav  audio/x-wav              binary  1.0
   AddType .gif  image/gif                binary  1.0
   AddType .ief  image/ief                binary  1.0
   AddType .jpg  image/jpeg               binary  1.0
   AddType .JPG  image/jpeg               binary  1.0
   AddType .JPE  image/jpeg               binary  1.0
   AddType .jpe  image/jpeg               binary  1.0
   AddType .JPEG image/jpeg               binary  1.0
   AddType .jpeg image/jpeg               binary  1.0
   AddType .tif  image/tiff               binary  1.0
   AddType .tiff image/tiff               binary  1.0
   AddType .ras  image/cmu-raster         binary  1.0
   AddType .pnm  image/x-portable-anymap  binary  1.0
   AddType .pbm  image/x-portable-bitmap  binary  1.0
   AddType .pgm  image/x-portable-graymap binary  1.0
   AddType .ppm  image/x-portable-pixmap  binary  1.0
   AddType .rgb  image/x-rgb              binary  1.0
   AddType .xbm  image/x-xbitmap          7bit    1.0
   AddType .xpm  image/x-xpixmap          binary  1.0
   AddType .xwd  image/x-xwindowdump      binary  1.0
   AddType .html text/html                8bit    1.0
   AddType .htm  text/html                8bit    1.0
   AddType .htmls text/html               8bit    1.0
   AddType .c    text/plain               7bit    0.5
   AddType .h    text/plain               7bit    0.5
   AddType .C    text/plain               7bit    0.5
   AddType .cc   text/plain               7bit    0.5
   AddType .hh   text/plain               7bit    0.5
   AddType .m    text/plain               7bit    0.5
   AddType .f90  text/plain               7bit    0.5
   AddType .txt  text/plain               7bit    0.5
   AddType .rtx  text/richtext            7bit    1.0
   AddType .tsv  text/tab-separated-values 7bit   1.0
   AddType .etx  text/x-setext            7bit    0.9
   AddType .MPG  video/mpeg               binary  1.0
   AddType .mpg  video/mpeg               binary  1.0
   AddType .MPE  video/mpeg               binary  1.0
   AddType .mpe  video/mpeg               binary  1.0
   AddType .MPEG video/mpeg               binary  1.0
   AddType .mpeg video/mpeg               binary  1.0
   AddType .qt   video/quicktime          binary  1.0
   AddType .mov  video/quicktime          binary  1.0
   AddType .avi  video/x-msvideo          binary  1.0
   AddType .movie video/x-sgi-movie       binary  1.0
   AddType .gz   multipart/x-gzip         binary  1.0
   AddType .zip  multipart/x-zip          binary  1.0
   AddType .tar  multipart/x-tar          binary  1.0
   AddType .ustar multipart/x-ustar       binary  1.0
   AddType  *.*  www/unknown              binary  0.2
   AddType  *    www/unknown              binary  0.2
   AddType .cxx  text/plain               7bit    0.5
   AddType .for  text/plain               7bit    0.5
   AddType .mar  text/plain               7bit    0.5
   AddType .log  text/plain               7bit    0.5
   AddType .com  text/plain               7bit    0.5
   AddType .sdml text/plain               7bit    0.5
   AddType .list text/plain               7bit    0.5
   AddType .lst  text/plain               7bit    0.5
   AddType .def  text/plain               7bit    0.5
   AddType .conf text/plain               7bit    0.5
   AddType .     text/plain               7bit    0.5

Exec - Run a CGI program for matching requests

Use this directive to specify a template for requests you want to accept and respond to by running a CGI program. Once a request matches a template on an Exec directive, the request is not compared to request templates on any subsequent directives.

The format of the directive is:

   Exec   request-template   program-path

request-template

A template for requests that you want your server to accept and respond to by running a CGI program.

You must use an asterisk as a wildcard in both the request-template and program-path. The part of the request that matches the request-template wildcard must begin with the name of the file that contains the CGI program.

program-path

The path to the file that contains the CGI program you want the server to execute for the request.

program-path must also contain a wildcard. The wildcard is replaced with the name of the file that contains the CGI program. The request can also contain additional data that is passed to the CGI program in the PATH_INFO environment variable. The additional data follows the first slash character that comes after the CGI program file name on the request. The data is passed according to CGI specifications. See Chapter 11. "Writing Common Gateway Interface Programs" for information on writing CGI programs.

Example
   Exec  /idd/depts/*  d:\depts\bin\*

In this example, if your server receives a request of /idd/depts/plan/c92, it runs the CGI program in d:\depts\bin\plan.exe or d:\depts\bin\plan.cmd with c92 passed to the program as input.

Defaults
   Exec    /admin-bin/*  d:\path\*
   Exec    /cgi-bin/*    d:\path\*
d:\path\ is replaced by a directory you entered at installation. If you used the installation defaults, your default Exec directives would be:
   Exec    /admin-bin/*  C:\WWW\ADMIN\*
   Exec    /cgi-bin/*    C:\WWW\CGI-BIN\*

Fail - Reject matching requests

Use this directive to specify a template for requests you do not want to process. Once a request matches a template on a Fail directive, the request is not compared to request templates on any subsequent directives.

The format of the directive is:

   Fail   request-template

request-template

A template for requests that you want your server to reject. If a request matches the template, the server sends the requester an error message.

You can use an asterisk as a wildcard in the template. The tilde character just after a slash (/~) has to be explicitly matched; a wildcard cannot be used to match it.

Example
   Fail /usr/local/private/*

Default
None

Map - Change matching requests to a new result string

Use this directive to specify a template for requests you want to change to a new request string. After your server changes the request, it takes the new request string and compares it to the request templates on subsequent directives.

The format of the directive is:

   Map   request-template  new-request

request-template

A template for requests that you want your server to change and then continue comparing the new request string to other templates.

You can use an asterisk as a wildcard in the template. The tilde character just after a slash (/~) has to be explicitly matched; a wildcard cannot be used to match it.

new-request

The new request string you want your server to continue to compare to the request templates on subsequent directives. new-request may contain a wildcard if the request-template has one. The part of the request that matches the request-template wildcard is inserted in place of the wildcard in new-request.

Example
   Map   /stuff/*   /good/stuff/*

In the above example, your server would take any requests starting with /stuff/ and change the /stuff/ portion of the request to /good/stuff/. Anything that followed /stuff/ on the original request would also be included in the new request string. So /stuff/whatsup/ would change to /good/stuff/whatsup/. Your server would take the new request string and continue to compare it to request templates on subsequent directives.

Default
None

Pass - Accept matching requests

Use this directive to specify a template for requests you want to accept and respond to with a document from your server. Once a request matches a template on a Pass directive, the request is not compared to request templates on any subsequent directives.

The format of the directive is:

   Pass   request-template  [file-path]

request-template

A template for requests that you want your server to accept and respond to with a document from your server.

You can use an asterisk as a wildcard in the template. The tilde character just after a slash (/~) has to be explicitly matched; a wildcard cannot be used to match it.

file-path

The path to the file that contains the document you want the server to return. file-path may contain a wildcard if the request-template has one. The part of the request that matches the request-template wildcard is inserted in place of the wildcard in file-path.

This parameter is optional. If you do not specify a path, the request itself is used as the path. The drive is assumed to be the drive where the server program is installed.

Examples
   Pass   /updates/parts/*   C:\WWW\HTML\catalog\updates\parts\*

In the above, your server would respond to a request starting /updates/parts/ with a document from C:\WWW\HTML\catalog\updates\parts\. Anything that followed /updates/parts/ would also be used to identify the document. So your server would respond to the request /updates/parts/printers/ribbon.html with the document in file C:\WWW\HTML\catalog\updates\parts\printers\ribbon.html.

   Pass   /gooddoc/*

In the above example, your server would respond to a request starting with /gooddoc/ with a document from d:\gooddoc\ (where d: is the drive where you installed the server program. So your server would respond to the request /gooddoc/volume1/issue2/newsletter4.html with the document in file d:\gooddoc\volume1\issue2\newsletter4.html.

Defaults
   Pass  /Docs/*                  d:\path\*
   Pass  /httpd-internal-icons/*  d:\path\*
   Pass  /icons/*                 d:\path\*
   Pass  /Admin/*                 d:\path\*
   Pass  /*                       d:\path\*
d:\path\ is replaced by a directory you entered at installation. If you used the installation defaults, these Pass directives would be:
   Pass    /Docs/*                  C:\WWW\DOCS\*
   Pass    /httpd-internal-icons/*  C:\WWW\ICONS\*
   Pass    /icons/*                 C:\WWW\ICONS\*
   Pass    /Admin/*                 C:\WWW\ADMIN\*
   Pass    /*                       C:\WWW\HTML\*

Note: The path following Pass /* is your document root directory. See "Understanding the Document Root Directory" for more information.

The following Pass directives are also included as defaults. These directives enable your server to be a proxy.

   Pass  http:*
   Pass  ftp:*
   Pass  gopher:*
   Pass  wais:*

Redirect - Send matching requests to another server

Use this directive to specify a template for requests you want to accept and send to another server. Once a request matches a template on a Redirect directive, the request is not compared to templates on any other directives in your configuration file.

The format of the directive is:

   Redirect  request-template  URL

request-template

A template for requests that you want your server to send to another server.

You can use an asterisk as a wildcard in the template. The tilde character just after a slash (/~) has to be explicitly matched; a wildcard cannot be used to match it.

URL

The URL request you want your server to send to another server. The response to this request goes to the original requester without any indication that it did not come from your server.

URL must contain a protocol specification and the name of the server to send the request to. It can also contain a path or file name. If request-template uses a wildcard, the path or file name on URL can also use a wildcard. The part of the original request that matches the wildcard on request-template is inserted in place of the wildcard on URL.

Example
   Redirect  /chief/stuff/*   http://www.other.org/wahoo/*

In this example, your server sends any requests beginning with /chief/stuff/ to the wahoo directory of the www.other.org server.

Default
None

SuffixCaseSense - Specify whether extension definitions are case sensitive

Use this directive to specify whether you want your server to distinguish between uppercase and lowercase letters when comparing file extensions to the extension patterns on AddType, AddEncoding, and AddLanguage directives. By default, the server does not distinguish between uppercase and lowercase.

Example
   SuffixCaseSense  On

Default
   SuffixCaseSense  Off

Proxy Server Settings

Use the directives described in this section to configure your server as a caching proxy. See "Running Your Server as a Caching Proxy" for more information on proxy servers.

CacheClean - Specify how long to keep cached files with URLs that match a template

Use this directive to set the maximum amount of time for the server to keep cached files with URLs matching a given template. Documents with URLs matching the template will be deleted after they have been cached for the specified time, regardless of their expiration date. You can have multiple occurrences of this directive in the configuration file. Include a separate directive for each template. The URL template must include the protocol. Specify the time value in any combination of months, weeks, days, and hours.

Examples
   CacheClean http:* 2 weeks
   CacheClean ftp:* 1 month 2 days
   CacheClean gopher:* 3 days 12 hours

Default
None

CacheDefaultExpiry - Specify default expiration time for files that do not have an expiration date

Use this directive to set a default expiration time for files that the server did not give either an Expires or a Last-Modified header to. You specify a URL template and the expiration time for files with URLs that match the template. You can have multiple occurrences of this directive in the configuration file. Include a separate directive for each template. The URL template must include the protocol. Specify the time value in any combination of months, weeks, days, and hours.

Examples
   CacheDefaultExpiry ftp:* 1 month
   CacheDefaultExpiry gopher:* 10 days

Default
   CacheDefaultExpiry ftp:  1 day
   CacheDefaultExpiry gopher:  1 day
   CacheDefaultExpiry http:  0

Notice in the above defaults that the default expiration for HTTP is 0. HTTP should be kept at 0 because many script programs don't give an expiration date, yet their output expires immediately. A value other than 0 may cause problems.)

CacheExpiryCheck - Turn cache expirations off

Use this directive to specify whether you want the server to return cached files that have expired. Specify Off for the value if you want the server to be able to return expired files. Use the default value of On if you do not want the server to return expired files. Generally, you will not want the server to return expired files. An exception might be if you were demonstrating the server and do not particularly care about the content being returned.

Example
   CacheExpiryCheck Off

Default
   CacheExpiryCheck On

CacheLastModifiedFactor - Specify fraction of Last-Modified time to be used for determining expiration date

HTTP servers usually give the Last-Modified time for a file, but not the Expires date. Use this directive to have your server approximate the expiration date of these files based on the Last-Modified time. The server uses the Last-Modified date to determine how long it has been since the file was modified. The server multiplies that length of time by the value on the CacheLastModifiedFactor directive. The server uses the result of this calculation to assign the file an expiration date when it caches the file.

Examples
   CacheLastModifiedFactor 0.2
The above example would cause files modified five months ago to expire after one month.
   CacheLastModifiedFactor Off
The above example would turn this function off.

Default
   CacheLastModifiedFactor 0.1

The default of 0.1 would cause files modified 20 days ago to expire after 2 days.

CacheLimit_1 - Specify lower limit for cached file size

The garbage collection process assigns each file in the cache a size factor when determining which files to delete. The greater the size of the file, the greater the chances that it will be deleted. Use this directive to set the lower limit for file size calculations. Garbage collection assigns all files under this limit the same size factor. Specify the value in kilobytes (K).

Example
   CacheLimit_1 400 K

Default
   CacheLimit_1 200 kilobytes

CacheLimit_2 - Specify upper limit for cached file size

The garbage collection process assigns each file in the cache a size factor when determining which files to delete. The greater the size of the file, the greater the chances that it will be deleted. Use this directive to set the upper limit for file size calculations. Garbage collection assigns all files above this limit the same size factor. Files above the limit will usually be deleted. Specify the value in kilobytes (K).

Example
   CacheLimit_2 2000 K

Default
   CacheLimit_2 4000 K

CacheLockTimeOut - Specify how long a file being cached can remain locked

During retrieval, cache files are locked. If something goes wrong, a locked file may be left hanging. Use this directive to set the amount of time after which the lock on the file can be broken. Specify the time value in minutes (mins).

Note: Set CacheLockTimeOut to a value equal to or greater than OutputTimeOut. The default value of 20 minutes is the same as the default for OutputTimeOut.

Example
   CacheLockTimeOut 30 mins

Default
   CacheLockTimeOut 20 minutes

CacheNoConnect - Specify stand alone cache mode

Use this directive to specify whether you want the proxy server to retrieve files from remote servers. Use the default value of Off if you want the server to be able to retrieve files from remote servers.

Specify On if you want the server to run in stand alone cache mode. This means that the server can return only files already stored in its cache. Typically, you would also set the CacheExpiryCheck directive to Off when running the server in this mode.

Running the server in stand alone cache mode can be useful if you are using the server for demonstrations. If you know all the files you want to use for a demonstration are stored in the cache, then you do not need a network connection.

Example
   CacheNoConnect On
In the above example, the server returns only files stored in its cache.

Default
   CacheNoConnect Off

CacheOnly - Cache only files with URLs that match a template

Use this directive to specify that only files with URLs that match the given template should be cached. You can have multiple occurrences of this directive in the configuration file. Include a separate directive for each template. The URL template must include the protocol.

Example
   CacheOnly http://realstuff/*

Default
None

CacheRoot - Specify cache root directory

Use this directive to specify the top directory in the cache hierarchy. The server will create subdirectories within this directory for each cached protocol. It will also create subdirectories under each protocol subdirectory for each remote server.

Example
   CacheRoot /webcache

Default
None

CacheSize - Specify cache size

Use this directive to set the maximum amount of disk space you want the proxy cache to use. If you have plenty of disk space, you may want to substantially increase the 5 M default size. The size of the cache will usually stay below the maximum, but may occasionally grow slightly larger. When the maximum size is reached, the garbage collection process begins. Specify the cache size in megabytes (M).

Example
   CacheSize 50 M

Default
   CacheSize 5 M

CacheTimeMargin - Do not cache files due to expire within specified time

Use this directive to specify that you do not want to cache files that expire within the given time period. This directive helps to lessen the confusion between servers when their clocks are not synchronized. You can also use the directive to prevent the server from caching files that expire soon.

Example
   CacheTimeMargin  5 mins

Default
   CacheTimeMargin  2 minutes

The default means that no file expiring in less than two minutes will be cached.

CacheUnused - Specify how long to keep unused cached files that match a template

Use this directive to set the maximum amount of time for the server to keep unused cached files with URLs matching a given template. The server deletes unused files with URLs matching the template after they have been cached for the specified time, regardless of their expiration date. You can have multiple occurrences of this directive in the configuration file. Include a separate directive for each template. The URL template must include the protocol. Specify the time value in any combination of months, weeks, days, and hours.

Examples
   CacheUnused ftp:* 3 weeks
   CacheUnused gopher:* 3 days 12 hours
   CacheUnused * 4 weeks

Default
None

Caching - Turn proxy caching on/off

Use this directive to enable the caching of files. With caching turned on, the proxy server can store the files it retrieves from other servers in a local cache. The server can then respond to subsequent requests for the same files without having to retrieve them from another servers. This can improve response time.

Example
   Caching On

Default
   Caching Off

ftp_proxy - Specify a proxy server for this proxy to connect to for FTP requests

If your proxy server is part of a chain of proxies, use this directive to specify the name of another proxy that this server should contact for FTP requests.

Example
   ftp_proxy ftp://outer.proxy.server/

Default
None

Gc - Turn garbage collection on or off

If you have enabled caching, the server uses the garbage collection process to delete files that should no longer be cached. Files are deleted based on their expiration date and other proxy directive values. Use this directive to turn garbage collection on or off. Generally, you would not turn off garbage collection if you have enabled caching. If you do, your cache file could grow beyond the maximum size you set for it.

Assuming garbage collection is turned on, the garbage collection process runs when the cache reaches its maximum size (as specified on the CacheSize directive). The garbage collection process will also run at the time of day specified on the GcDailyGc directive.

Example
   Gc On

Default
   Gc Off

GcDailyGc - Specify a daily time for garbage collection

Use this directive to specify a particular time of day to run the garbage collection process. Garbage collection occurs automatically when the cache size limit is reached. By specifying a daily time for garbage collection you can also remove cached files before the cache reaches its maximum. Specify the time value in 24:00 hour format. Generally, you would want the garbage collection process to run when your server is not being used much for other things. This is why the default is 03:00.

Example
   GcDailyGc 22:00

The above example would start the garbage collection process at 10 PM.

   GcDailyGc Off

The above example would disable daily garbage collection.

Default
   GcDailyGc 03:00

GcMemUsage - Specify how much memory to use for garbage collection

Garbage collection works best if it can read all cache information into memory at one time. It may not be able to read in the entire cache if your system does not have enough main memory.

Use this directive to specify how much memory garbage collection can use. The value you specify should be approximately the amount of virtual memory that the server may use while performing garbage collection. The amount of memory needed will vary based on dynamic changes such as the directory structure of cached files. Specify the value as a number that represents kilobytes, but do not put a K next to the number.

If garbage collection fails because there is not enough memory on your system, set this directive to a smaller value. If you have plenty of memory to spare, you may want to set this value above the default of 500.

Example
   GcMemUsage 100

The example above might be used for a machine with a small amount of memory.

Default
   GcMemUsage 500

gopher_proxy - Specify a proxy server for this proxy to connect to for Gopher requests

If your proxy server is part of a chain of proxies, use this directive to specify the name of another proxy that this server should contact for Gopher requests.

Example
   gopher_proxy gopher://outer.proxy.server/

Default
None

http_proxy - Specify a proxy server for this proxy to connect to for HTTP requests

If your proxy server is part of a chain of proxies, use this directive to specify the name of another proxy that this server should contact for HTTP requests.

Example
   http_proxy http://outer.proxy.server/

Default
None

MaxContentLengthBuffer - Set the size of the buffer for files retrieved from another server

Use this directive to set the size of the buffer. For each proxy request, the server allocates a buffer up to the size you specify on this directive. If the file being retrieved is larger than the buffer, the server sends it to the client without a Content Length header. Specify the buffer size in kilobytes (K) or megabytes (M).

Example
   MaxContentLengthBuffer 2 M

Default
   MaxContentLengthBuffer 50 K

no_proxy - Connect directly to domains matching templates

Use this directive to specify the domains that you want the server to directly connect to rather than going through a proxy.

Specify the value as a string of domain names or domain name templates. Separate each entry in the string with a comma. Do not put any spaces in the string.

You specify templates on this directive a bit differently than the way you specify templates on other directives. Most importantly, you cannot use the wildcard character (*). What you can do is specify a template by including only the last part of a domain name. The server connects directly to any domains that end with a string matching the templates you specify. The following example shows how this works.

Example
   no_proxy   www.someco.com,.raleigh.ibm.com,.some.host.org:8080

In the above example the server would not go through a proxy for the following requests:

Default
None

NoCaching - Do not cache files with URLs that match a template

Use this directive to specify that the server should not cache files with URLs matching the given template. You can have multiple occurrences of this directive in the configuration file. Include a separate directive for each template. The URL template must include the protocol.

Example
   NoCaching http://joke/*

Default
None

wais_proxy - Specify a proxy server for this proxy to connect to for WAIS requests

If your proxy server is part of a chain of proxies, use this directive to specify the name of another proxy that this server should contact for WAIS requests.

Example
   wais_proxy wais://outer.proxy.server/

Default
None

Performance Settings

Use the directives described in this section to control the performance of your Internet Connection Server.

Use the MinActiveThreads, MaxActiveThreads, and IdleThreadTimeout directives to specify your server's pool of available threads. By having a pool of threads available to your server, you can reduce the number of times your server needs to start and close new threads.

Each time your server receives a request from a client, it uses one or two threads to perform the requested action. (One thread if the server is not performing DNS lookup. Two threads if the server is performing DNS lookup.) The server first checks to see if any threads are available. If so, the server uses available threads to process the request. If no threads are available and the maximum number of active threads has not been reached, the server starts new threads to process the request. If the maximum number of active threads has been reached, the server holds the request until threads become available. When a request finishes, the threads it was using become idle. As long as idle threads do not expire, they are available for the server to use again.

Use the ServerPriority directive to specify the priority your operating system gives to the server.

If you see a problem with your performance with your server being too slow, it could be related to any of the following:

Use the CacheLocalFile directive to load your most popular files into the servers memory at startup time.

CacheLocalFile - Specify files you want to load in memory at start up

Use this directive to specify the names of files you want to load into the server's memory each time you start the server. You can have multiple occurrences of this directive in the configuration file. Include a separate directive for each file you want to load into memory.

By keeping your most frequently requested files loaded in the server's memory, you can improve your server's response time for those files. For example, if you load your server's welcome page into memory at startup, the server can handle requests for the page much more quickly than if it had to read the file from a disk. Keep in mind that for each file you load into memory, you are making that amount of memory unavailable for other uses.

Before responding to a request for a file that is stored in memory, the server checks to see if the file has changed since the server was started. If the file has changed, the server responds to the request with the updated file and deletes the old version from its memory. To load the new file into memory, you need to restart the server.

Notes:

  1. You must specify a fully qualified file name on each directive.

  2. You cannot use wildcard characters on the file names.

Example
   CacheLocalFile   d:\www\html\index.html

Default
The default configuration includes CacheLocalFile directives for the HTML and graphics files that make up the Internet Connection Server Front Page.

IdleThreadTimeout - Specify length of time to keep idle threads available

Use this directive to specify how long the server should keep an idle thread available. A thread becomes idle after the last request to use it completes. If the number of threads already available or active is greater than the value on MinActiveThreads and the server does not use the thread again within the specified time, the server closes the idle thread.

Specify the time value in any combination of hours, minutes (or mins), and seconds (or secs). If you use the default value of forever, the server does not close any idle threads.

Example
   IdleThreadTimeout   5 mins

Default
   IdleThreadTimeout   forever

MaxActiveThreads - Specify the maximum number of threads to have active

Use this directive to set the maximum number of threads that you want to have active at one time. If the maximum is reached, the server holds new requests until another request finishes and threads become available. Generally, the more power your machine has, the higher the value you should use for this directive. If your machine starts to spend too much time on overhead tasks, such as swapping memory, try reducing this value.

Example
   MaxActiveThreads   59

Default
   MaxActiveThreads   40

MinActiveThreads - Specify the minimum number of threads to keep available or active

Use this directive to set the minimum number of threads that you want the server to either be using or have available to use. The server will not close threads below this minimum even if the threads are idle. Generally, the more power your machine has, the higher the value you should use for this directive. If your machine starts to spend too much time on overhead tasks, such as swapping memory, try reducing this value.

Example
   MinActiveThreads   30

Default
   MinActiveThreads   20

ServerPriority - Specify the priority you want your server to have on your system

Use this directive to specify a priority class for the Internet Connection Server. The operating system uses priority classes to determine which processes have priority over others.

Valid values are:

You may want to use a value of 0 if the machine yourInternet Connection Server is running on is also processing other types of requests (for example, if the machine is also running IBM LAN Server for OS/2).

Example
   ServerPriority   0

Default
   ServerPriority   1

Access Control

Use the directives described in this section to control access to your server's resources.

You link protection setups to groups of files based on the requests that are used to access those files. Use the DefProt and Protect directives to define the requests you want to protect.

You can define the actual protection setup in a separate protection file or directly in the configuration file. Within the configuration file, you can define and label a protection setup using the Protection directive. You can also define a protection setup directly on a DefProt or Protect directive.

This section also describes the subdirectives that define a protection setup.

See Chapter 7. "Protecting Your Server" for step-by-step instructions on protecting your server resources.

DefProt - Specify default protection setup for requests that match a template

Use this directive to associate a default protection setup with requests that match a template.

Attention: For protection to work properly, you must put your DefProt and Protect directives before any Pass or Exec directives in your configuration file.

The format of the directive is:

   DefProt request-template  setup

request-template

A template for requests that you want to associate with a default protection setup. The server compares incoming client requests to the template and associates a protection setup if there is a match.

Protection is not actually activated for requests matching the template unless the request also matches a template on a subsequent Protect directive. See the description of the Protect directive for an explanation of how it is used with DefProt.

setup

The default protection setup you want to associate with requests that match request-template. Protection setup is defined with protection subdirectives. See "Protection Subdirectives" for descriptions of the protection subdirectives. This parameter can take one of three forms:

Examples
   DefProt   /secret/*   d:\server\protect\setup1.acc

The above example identifies a separate file that contains the protection subdirectives.

   DefProt   /secret/*   SECRET-PROT

The above example uses a label name to point to the protection subdirectives. The label name must match a label name on a Protection directive. The Protection directive must come before the DefProt directive.

   DefProt   {
      AuthType Basic
      ServerID restricted
      PasswdFile d:\docs\WWW\restrict.pwd
      GroupFile  d:\docs\WWW\restrict.grp
      GetMask authors
      PutMask authors
   }

The above example includes the protection subdirectives as part of the DefProt directive.

Default
None

Protect - Activate protection setup for requests that match a template

Use this directive to activate protection setup rules for requests that match a template.

Attention: For protection to work properly, you must put your DefProt and Protect directives before any Pass or Exec directives in your configuration file.

The format of the directive is:

   Protect request-template [setup]

request-template

A template for requests that you want to activate protection for. The server compares incoming client requests to the template and activates protection if there is a match.

setup

The protection setup you want to activate for requests that match request-template.

This parameter is optional. If it is omitted, the protection setup is defined by the most recent DefProt directive that contains a matching template.

Protection setup is defined with protection subdirectives. See "Protection Subdirectives" for descriptions of the protection subdirectives. If present, this parameter can take one of three forms:

Examples
   Protection BUS-PROT {
      AuthType Basic
      ServerID restricted
      PasswdFile d:\docs\WWW\restrict.pwd
      GroupFile  d:\docs\WWW\restrict.grp
      GetMask authors
      PutMask authors
   }
   DefProt /secret/*        d:\server\protect\setup1.acc
   Protect /secret/scoop/*
   Protect /secret/business/*   BUS-PROT
   Protect /topsecret/*  {
      AuthType Basic
      ServerID restricted
      PasswdFile d:\docs\WWW\restrict.pwd
      GroupFile  d:\docs\WWW\restrict.grp
      GetMask topbrass
      PutMask topbrass
   }
  Pass   /secret/scoop/*       d:\WWW\restricted\*
  Pass   /secret/business/*    d:\WWW\confidential\*
  Pass   /topsecret/*          d:\WWW\topsecret\*

In the above example, the server activates protection as follows:

Default
Protection is provided for the Administration and Configuration Forms by a Protect directive with a request template of /admin-bin/*.

Protection - Define a named protection setup within the configuration file

Use this directive to define a protection setup within the configuration file. You give the protection setup a name and define the type of protection using protection subdirectives.

Note: In the configuration file, you must place Protection directives before any DefProt or Protect directives that point to them.

The format of the directive is:

   Protection label-name  {
    subdirective  value
    subdirective  value
    .
    .
    .
   }

label-name

The name you want to associate with this protection setup. The name can then be used by subsequent DefProt and Protect directives to point to this protection setup.

subdirective value Put a protection subdirective and its value on each line between the left brace and the right brace. You cannot put any comment lines between the braces.

See "Protection Subdirectives" for descriptions of the protection subdirectives.

Example
   Protection  NAME-ME  {
      AuthType Basic
      ServerID restricted
      PasswdFile d:\WWW\password.pwd
      GroupFile  d:\WWW\group.grp
      GetMask groupname
      PutMask groupname
   }

Default
Protection  PROT-ADMIN  {
    PasswdFile   C:\TCPIP\ETC\ADMIN.PWD
    Mask         All@(*)
    PostMask     All@(*)
    PutMask      All@(*)
    GetMask      All@(*)
    AuthType     Basic
    ServerID     Private_Authorization
}

Protection Subdirectives

Following are descriptions of each of the protection subdirectives that can be used in a protection setup. The subdirectives are in alphabetical order.

Protection setups can either be in separate files or within the configuration file as part of DefProt, Protect, or Protection directives.

See "Protection Example" and the previous descriptions of the DefProt, Protect, and Protection directives for examples of using protection setups.

ACLOverride - Specify that ACL files override protection setups

Use this subdirective with a value of On if you want Access Control List files (ACL) to override the masks specified in the protection setup. If a directory being protected by the protection setup has an ACL file, the mask subdirectives in the protection setup are ignored. (The mask subdirectives are DeleteMask, GetMask, Mask, PostMask, and PutMask.)

See "Using Access Control List (ACL) Files" for more information on ACL files.

Example
   ACLOverride On

AuthType - Specify authentication type

Use this subdirective when limiting access based on user names and passwords. Specify the type of authentication to use when the client sends a password to the server. The only meaningful value for this subdirective is Basic. With basic authentication, passwords are sent to the server as plain text. They are encoded, but not encrypted.

Example
   AuthType Basic

DeleteMask - Specify the user names, groups, and addresses allowed to delete files

Use this subdirective to specify user names, groups, and addresses templates authorized to make DELETE requests to a protected directory. See "Rules for Specifying User Names, Group Names, and Address Templates".

Example
   DeleteMask authors,(niceguy,goodie)@96.96.3.1,128.141.*.*

GetMask - Specify the user names, groups, and addresses allowed to get files

Use this subdirective to specify user names, groups, and address templates authorized to make GET requests to a protected directory. See "Rules for Specifying User Names, Group Names, and Address Templates".

Example
   GetMask authors,(niceguy,goodie)@96.96.3.1,128.141.*.*

GroupFile - Specify the location of the associated group file

Use this subdirective to specify the path and file name of the server group file that you want this protection setup to use. The groups defined within the server group file can then be used by:

See "Using Server Group Files" more information about server group files.

Example
   GroupFile d:\docs\WWW\restrict.group

Mask - Specify the user names, groups, and addresses allowed to make HTTP requests

Use this subdirective to specify user names, groups, and address templates authorized to make HTTP requests not covered by other mask subdirectives. See "Rules for Specifying User Names, Group Names, and Address Templates". See "Methods" for descriptions of the HTTP methods supported by Internet Connection Server.

Example
   Mask authors,(niceguy,goodie)@96.96.3.1,128.141.*.*

PasswdFile - Specify the location of the associated password file

Use this subdirective when limiting access based on user names and passwords. Specify the path and name of the password file that you want this protection setup to use.

Example
   PasswdFile  c:\WWW\restrict.password

PostMask - Specify the user names, groups, and addresses allowed to post files

Use this subdirective to specify users, groups, and address templates authorized to make POST requests to a protected directory. See "Rules for Specifying User Names, Group Names, and Address Templates".

Example
   PostMask authors,(niceguy,goodie)@96.96.3.1,128.141.*.*

PutMask - Specify the users names, groups, and addresses allowed to put files

Use this subdirective to specify users, groups, and address templates authorized to make PUT requests to a protected directory. See "Rules for Specifying User Names, Group Names, and Address Templates".

Example
   PutMask authors,(niceguy,goodie)@96.96.3.1,128.141.*.*

ServerID - Specify a name to associate with the password file

Use this subdirective when limiting access based on user names and passwords. Specify a name you want to associate with the password file being used. The name does not need to be a real machine name.

The name is used as an identifier to the requester. Since different protection setups can use different password files, having a name associated with the protection setup can help the client decide which password to send. Most clients display this name when prompting for a user name and password.

Example
   ServerID restricted

User Directories

Use the directive described in this section to control whether individual users of your server can have their own private Web documents.

HomeDir - Specify the directory that contains user subdirectories

Use this directive to specify the name of a directory on which you want to allow individual users to have their own subdirectories. Each user can have a subdirectory off of the directory name you specify. URL requests to user subdirectories are in the format ~username. The server passes these requests to the appropriate user subdirectory on the HomeDir directory.

You can use the HomeDir directive either by itself or together with the UserDir directive. Whether or not you use UserDir determines how the server maps URL requests to the user subdirectories.

If you use HomeDir without UserDir, all files within the user subdirectories are accessible to clients. See the description of the UserDir directive for a description and example of using HomeDir with UserDir.

Note: By using this directive, you are telling the server to process all requests to user subdirectories. You do not need to put any additional Pass directives in the configuration file.

Example
   HomeDir  c:\user

In the above example, the server would map URL requests containing /~username to the c:\user\~username directory.

Default
None. By default the server does not accept requests to user subdirectories.

UserDir - Specify the name of the accessible subdirectory off of user subdirectories

Use this directive to specify the name of a subdirectory where individual users can keep the files they want to be accessible to clients of the server. This directive limits client access to just one subdirectory within each user subdirectory. Each individual subdirectory off of the HomeDir directory can have a subdirectory with the name you specify.

To use this directive, you must also use the HomeDir directive.

An example of why you might want to use this directive is if your server has access to a LAN server where users have home directories. You can use this directive to define one subdirectory off of each user directory where users could keep Web pages they want to be accessible.

Example
   UserDir  html_doc
In the above example the server would map URL requests containing /~username to the c:\user\~username\html_doc directory.

Default
None


[ Top of Page | Previous Page | Next Page | Table of Contents ]